<?php
/**
 * Created by PhpStorm.
 * User: fengyan
 * Date: 2017/4/11
 * Time: 下午7:59
 */

namespace app\admin\model;


class Config extends BaseModel
{

    /**
     * @var bool 自动写入创建和更新的时间戳字段
     */
    protected $autoWriteTimestamp = true;

    /**
     * @var string 主键
     */
    protected $pk = 'id';

    /**
     * 添加时候自动完成
     * @var array
     */
    protected $insert = ['name'];

    /**
     * 更新时候自动完成
     * @var array
     */
    protected $update = ['name'];

    /**
     * 配置名称转为小写
     * @param $name
     * @return string
     */
    public function setNameAttr($name){
        return strtolower($name);
    }

    /**
     * 读取站点所有配置
     * @return array
     */
    public function getConfigList()
    {
        $result = $this->where('status', 99)->select();
        $config = [];
        foreach ($result as $key=>$value) {
            $config[$value['name']] = $this->parse($value['type'], $value['value']);
        }
        return $config;
    }

    /**
     * 根据配置类型解析配置
     * @param  integer $type  配置类型
     * @param  string  $value 配置值
     * @author 鬼国二少 <guiguoershao@163.com>
     * @return array
     */
    private function parse($type, $value){
        switch ($type) {
            case 3: //解析数组
                $array = preg_split('/[,;\r\n]+/', trim($value, ",;\r\n"));
                if(strpos($value,':')){
                    $value  = array();
                    foreach ($array as $val) {
                        list($k, $v) = explode(':', $val);
                        $value[$k]   = $v;
                    }
                }else{
                    $value =    $array;
                }
                break;
        }
        return $value;
    }
}